#include <iostream>
using namespace std;

class Date
{
public:
    void init(int year,int month,int day);
    void print();
private:
    int _year;
    int _month;
    int _day;
};

void Date::init(int year,int month,int day)
{
    this->_year = year;
    this->_month = month;
    this->_day = day;
}

void Date::print()
{
    cout << this->_year << "-";
    cout << this->_month << "-";
    cout << this->_day << endl;
}

int main()
{
    Date d1;
    Date d2;

    d1.init(2024,11,4);
    d2.init(2024,11,5);

    d1.print();
    d2.print();
    return 0;
}

// class C
// {
// public:
//     void func()
//     {
//     }
// };

// int main()
// {
//     cout << sizeof(C) << endl;
//     return 0;
// }

// class B
// {};
// class A
// {
// public:
//     void init(int a, char b, int c)
//     {
//         _a = a;
//         _b = b;
//         _c = c;
//     }
//     void print()
//     {
//         cout << _a << " " << _b << " " << _c <<endl;
//     }
// private:
//     int _a;
//     char _b;
//     int _c;
// };

// int main()
// {
//     A a1;
//     A a2;

//     a1.init(1,2,3);
//     a2.init(11,22,33);

//     a1.print();
//     a2.print();
//     return 0;
// }

// class Date
// {
// public:
//     void init(int year,int month,int day);
// private:
//     int _year;
//     int _month;
//     int _day;
// };

// void Date::init(int year,int month,int day)
// {
//     _year = year;
//     _month = month;
//     _day = day;
// }

// int main()
// {
//     Date d1;
//     Date d2;
//     Date d3;
//     return 0;
// }

// class person
// {
// public:
//     void PrintfPerson();
//     int GetAge()//编译器会将类里面定义的函数当成内联函数处理
//     {
//         return age;
//     }
// private:
//     char _name[20];
//     int _age;
//     char _id[15];
// };

// void person::PrintfPerson()
// {
//     cout << _name << " ";
//     cout << _age << " ";
//     cout << _id << endl;
// }

// struct Stack
// {
//     int* a;
//     int top;
//     int capacity;
// };

// int main()
// {
//     Stack a;
//     //有问题的代码，使用不规范
//     if(a.top == 0)//判断栈是否为空
//     {
//         //...
//     }
//     return 0;
// }

// class stack
// {
// public:
//     void Init()
//     {
//         a = nullptr;
//         size = 0;
//         capacity = 0;
//     }
// private:
//     int* a;
//     int size;
//     int capacity;
// };

// int main()
// {
//     //struct的默认权限是公有，可以在类外面访问
//     LsitNode a;
//     a.a = 10;
//     a.next = nullptr;

//     //class的默认权限是私有，不可以在类外面访问
//     stack s;
//     s.a = nullptr;//错误代码，a是私有成员，不可以在类外面访问
//     s.size = 0;//错误代码，size是私有成员，不可以在类外面访问
//     s.capacity = 0;//错误代码，capacity是私有成员，不可以在类外面访问
//     return 0;
// }

// class Date
// {
// public:
//     void PrintfDate()
//     {
//         cout << _year << "-" << _month;
//         cout << "-" << _day << endl;
//     }
// private:
//     int _year;
//     int _month;
//     int _day;
// };



// int main()
// {
//     Date d;
//     d.PrintfDate();//可以在类外面访问
//     //////错误代码///////
//     d._year = 2024;//不能在类外面被访问
//     d._month = 11;//不能在类外面被访问
//     d._day = 13;//不能在类外面被访问
//     ///////////////////
//     return 0;  
// }



